home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HPAVC
/
HPAVC CD-ROM.iso
/
PHRO.ZIP
/
PCX.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1995-07-21
|
1KB
|
68 lines
{ PCX Decompression Routine Source FIle }
{ PHRO! }
{ Phred/OTM }
{ achalfin@uceng.uc.edu }
{ DO NOT DISTRIBUTE THIS SOURCE FILE }
Unit PCX;
Interface
Var
PhirePCXPtr : Pointer;
BillClintonPtr : Pointer;
Procedure DeCompressPCX(Var Buffer, Orig);
Implementation
{$F+}
{$L FirePcx.Obj}
Procedure PhirePcx; External;
{$L Bill.Obj}
Procedure BillClinton; External;
{$F-}
Procedure DeCompressPCX(Var Buffer, Orig);
Var
Size : Word;
TextureOffset : Word;
RunLen : Byte;
Value : Byte;
PCXOffset : Word;
PCXSeg : Word;
Begin
PCXSeg := Seg(Orig);
PCXOffset := Ofs(Orig)+128;
TextureOffset := 0;
Size := 65535;
While TextureOffset < Size do
Begin
RunLen := Mem[PcxSeg:PcxOffset];
Inc(PcxOffset);
If (RunLen and $C0) = $C0
Then Begin
RunLen := RunLen And $3f;
Value := Mem[PCXSeg:PcxOffset];
Inc(PcxOffset);
End
Else Begin
Value := RunLen;
RunLen := 1;
End;
While (RunLen >= 1) and (TextureOffset < Size) do
Begin
Mem[Seg(Buffer):Ofs(Buffer)+TextureOffset] := Value;
TextureOffset := TextureOffset + 1;
RunLen := RunLen - 1;
End;
End;
End;
Begin
PhirePCXPtr := @PhirePCX;
BillClintonPtr := @BillClinton;
End.